package tech.aistar.design.singleton.version01;

/**
 * 本类用来演示: 单例模式 - 饿汉模式 - 多线程安全的.
 *
 * @author: success
 * @date: 2021/3/17 10:14 上午
 */
public class Single01Demo {

    //2. 提供该类的唯一实例
    //"人话" - 定义一个变量,这个变量就是该类的实例,并且是唯一的
    private static Single01Demo instance = new Single01Demo();

    //1. 私有化构造 - 不能让外部进行new
    private Single01Demo(){
        //进行一些初始的配置,比如读取资源配置文件...
        System.out.println("SingleDemo...");
    }

    //3. 提供一个公开的方法来返回这个类的唯一实例
    public static Single01Demo getInstance(){
        return instance;
    }
}

class TestSingle01Demo{
    public static void main(String[] args) {
       // Single01Demo s = new Single01Demo();

        Single01Demo s1 = Single01Demo.getInstance();
        Single01Demo s2 = Single01Demo.getInstance();
        System.out.println(s1 == s2);//true
    }
}